/*******************************************************************************
*
*   FILE NAME:
*       RenderTarget2D.h - RenderTarget2D class definition
*
*   DESCRIPTION:
*       Contains a 2D texture that can be used as a render target.
*
*******************************************************************************/
#pragma once

#include "GraphicsDevice.h"
#include "Types.h"

#include <d3d11.h>

class GraphicsDevice;

class RenderTarget2D
{
public:
    RenderTarget2D( GraphicsDevice& graphics_device, uint32 width, uint32 height );
    ~RenderTarget2D( void );

protected:

private:
    friend class GraphicsDevice;
    ID3D11RenderTargetView*     mRenderTargetView;
    ID3D11Texture2D*            mTexture;

    RenderTarget2D( const RenderTarget2D& other );
    RenderTarget2D& operator=( const RenderTarget2D& other );
};
